package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import modelo.Ingrediente;
import modelo.Conexion;
import vista.VIngrediente;;

public class CIngrediente implements ActionListener{

	public VIngrediente vIngrediente;
	public Ingrediente ingrediente;
	public Conexion BD;

	public CIngrediente(VIngrediente vc){
		vIngrediente=vc;
		try {
			BD = new Conexion();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
			public void actionPerformed(ActionEvent ae) {
				if(ae.getSource()==vIngrediente.getBtnRegistrar()){
					if(validarCampos()){
				ingrediente = new Ingrediente(vIngrediente.getTxtCodIngrediente().getText(),vIngrediente.getTxtDescripcion().getText(),Float.parseFloat(vIngrediente.getTxtExistencia().getText()),Float.parseFloat(vIngrediente.getTxtPrecio().getText()));
				BD.insertarIngrediente(ingrediente);
			
			
				JOptionPane.showMessageDialog(new JFrame(), 
						"El Ingrediente se ha registrado con exito","Ingrediente", 
						JOptionPane.INFORMATION_MESSAGE);
				   inicio();
				}
					else
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor introduzca todos los datos del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
		}
				if(ae.getSource()==vIngrediente.getBtnBuscar()){
					String codIngrediente=vIngrediente.getTxtCodIngrediente().getText();
					if(codIngrediente.equals(""))
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor introduzca el codigo del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
					else
					{
					ingrediente=BD.consultarIngrediente(codIngrediente);
					if(ingrediente==null){
						JOptionPane.showMessageDialog(new JFrame(), 
								"El ingrediente no se encuntra registrado","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
						noEncontrado();
					}
					else{	
					vIngrediente.getTxtDescripcion().setText(ingrediente.getDescripcion());
					vIngrediente.getTxtExistencia().setText(String.valueOf(ingrediente.getExistencia()));
					vIngrediente.getTxtPrecio().setText(String.valueOf(ingrediente.getPrecio()));
					encontrado();
					}
					}
		         }
				if(ae.getSource()== vIngrediente.getBtnModificar()){
					if(validarCampos()){
					ingrediente = new Ingrediente(vIngrediente.getTxtCodIngrediente().getText(),vIngrediente.getTxtDescripcion().getText(),Float.parseFloat(vIngrediente.getTxtExistencia().getText()),Float.parseFloat(vIngrediente.getTxtPrecio().getText()));
					BD.modificarIngrediente(vIngrediente.getTxtCodIngrediente().getText(),ingrediente);
					JOptionPane.showMessageDialog(new JFrame(), 
							"Los datos del ingrediente han sido modificado","Ingrediente", 
							JOptionPane.INFORMATION_MESSAGE);
					inicio();}
					else
						JOptionPane.showMessageDialog(new JFrame(), 
								"Por favor ingrese todos los datos del ingrediente","Ingrediente", 
								JOptionPane.INFORMATION_MESSAGE);
						
			}
				if(ae.getSource()== vIngrediente.getBtnLimpiar()){
					limpiarCampos();
					
				}
}
			public boolean validarCampos(){
				boolean validar=true;
				if(vIngrediente.getTxtDescripcion().getText().equals("") || vIngrediente.getTxtPrecio().getText().equals(""))
					validar=false;
				return validar;
			}
			public void limpiarCampos(){
				vIngrediente.getTxtDescripcion().setText("");
				vIngrediente.getTxtPrecio().setText("");
				vIngrediente.getTxtCodIngrediente().setText("");
				vIngrediente.getTxtCodIngrediente().requestFocus(true);
				desActivar();
					}
			public void encontrado(){
				vIngrediente.getTxtDescripcion().setEditable(true);
				vIngrediente.getTxtPrecio().setEditable(true);
				vIngrediente.getBtnModificar().setEnabled(true);	
				vIngrediente.getBtnLimpiar().setEnabled(true);
				vIngrediente.getBtnRegistrar().setEnabled(false);
			}
			public void noEncontrado(){
				vIngrediente.getBtnRegistrar().setEnabled(true);
				vIngrediente.getTxtDescripcion().setEditable(true);
				vIngrediente.getTxtDescripcion().requestFocus(true);
				vIngrediente.getTxtPrecio().setEditable(true);
				vIngrediente.getBtnLimpiar().setEnabled(true);
				vIngrediente.getTxtCodIngrediente().setEditable(false);
			}
			public void desActivar(){
				vIngrediente.getBtnRegistrar().setEnabled(false);
				vIngrediente.getTxtDescripcion().setEditable(false);
				vIngrediente.getTxtPrecio().setEditable(false);
				vIngrediente.getBtnLimpiar().setEnabled(false);
				vIngrediente.getTxtCodIngrediente().setEditable(true);	
				
			}
			public void inicio(){
				vIngrediente.getBtnModificar().setEnabled(false);
				vIngrediente.getBtnRegistrar().setEnabled(false);
				vIngrediente.getBtnLimpiar().setEnabled(false);
			    limpiarCampos();
				
			}
			
			}